Digital video compressed by most video coding standards, such as MPEG-1, MPEG-2/H.262, H.263, MPEG-4, and MPEG-4 AVC/H.264, suffers from visually disturbing coding artifacts, including blocking artifacts, ringing artifacts, and mosquito artifacts. The coding artifacts are especially noticeable at low bit rate video. Reducing the coding artifacts in decoded video is highly desirable prior to displaying. A method to achieve an artifact reduction goal should be effective in reducing the coding artifacts, not introduce new objectionable artifacts and be easily implemented in terms of storage capacity, memory bandwidth and computational complexity.
Three approaches to reducing coding artifacts currently exist: spatial filtering, temporal filtering and random noise addition. The spatial filtering approach tries to detect spatial discontinuities in a decoded picture and smooth the discontinuities by spatial filtering. The temporal filtering approach performs temporal filtering along a motion trajectory of an object. The random noise addition approach adds random noise into a decoded picture for the purpose of hiding coding artifacts.
A known problem of the spatial filtering approach is distinguishing discontinuities generated from coding (i.e., coding artifacts) and real edges in a decoded picture. Edge distinguishing has been proven to be very difficult, and in some cases, even impossible. As a result, either not enough coding artifacts are reduced, or new “filtering” artifacts are introduced that are sometimes even more disturbing than the original coding artifacts. Also, the spatial filtering approach is not effective in reducing mosquito artifacts.
In the temporal filtering approach, true motion vectors are needed in order to effectively remove the coding artifacts along the motion trajectory of an object. However, true motion vectors are often not available. In particular, the motion vectors used in coding may not necessarily represent the true motions of objects. Using incorrect motion vectors in temporal filtering can result in disturbing distortion of a picture. Also, the temporal filtering approach is not effective in reducing blocking artifact and ringing artifact. Furthermore, both the spatial filtering approach and the temporal filtering approach normally have high computational complexity.
The approach of adding random noise into a decoded picture is based on an observation that coding artifacts are disturbing to human visual system because the artifacts all have certain patterns that are either spatial or temporal. Adding random noise into a decoded picture can break the visual patterns and thus make the coding artifacts less noticeable. The random noise approach has been shown to be effective in reducing all types of coding artifacts. What has not been found, however, is a method of adding random noise that utilizes a small amount of storage, allows efficient memory access, has low computational complexity, is effective in reducing coding artifacts and does not introduce new objectionable artifacts.